//------------------------------------------------------------------------
/*
	Author:	Philipp Hannemann
	Date:	14.11.2012
	Beschreibung: 
			Eine simple Kamera Klasse.

*/
//------------------------------------------------------------------------
#ifndef Camera_h_
#define Camera_h_ Camera_h_
//------------------------------------------------------------------------
// Includes
//------------------------------------------------------------------------
#include "IrrlichtHeader.h"
#include "Misc.h"
//------------------------------------------------------------------------
// Macros
//------------------------------------------------------------------------

//------------------------------------------------------------------------
// Misc
//------------------------------------------------------------------------

//------------------------------------------------------------------------
class Camera : public virtual Entity
{
public:
	Camera(IrrlichtDevice * const dev);

public:
	void pitchUp(float timefactor);
	void pitchDown(float timefactor);

	void turnLeft(float timefactor);
	void turnRight(float timefactor);

public:
	vector3df getLookVec(void) const;
	vector3df getUpVec(void) const;
	vector3df getPosition(void) const;


private:
	void init();
	void placeCamera();

private:
	ICameraSceneNode * m_camera;

	float m_cameraAngleSpeed; // interessant aus ner datei zu laden -> feintuning
	float m_cameraYaw;
	float m_cameraPitch;
};
//------------------------------------------------------------------------
#endif // Camera_h_
